<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>LiquidFun: b2Collision.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">LiquidFun
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_6a494f89b6caadb0fb3fe22646e1d1a0.html">Collision</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">b2Collision.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;Box2D/Common/b2Math.h&gt;</code><br/>
<code>#include &lt;limits.h&gt;</code><br/>
</div>
<p><a href="b2_collision_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_contact_feature.html">b2ContactFeature</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionb2_contact_i_d.html">b2ContactID</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contact ids to facilitate warm starting.  <a href="unionb2_contact_i_d.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_manifold_point.html">b2ManifoldPoint</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_manifold.html">b2Manifold</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_world_manifold.html">b2WorldManifold</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is used to compute the current state of a contact manifold.  <a href="structb2_world_manifold.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_clip_vertex.html">b2ClipVertex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for computing contact manifolds.  <a href="structb2_clip_vertex.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_ray_cast_input.html">b2RayCastInput</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1).  <a href="structb2_ray_cast_input.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_ray_cast_output.html">b2RayCastOutput</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_a_a_b_b.html">b2AABB</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An axis aligned bounding box.  <a href="structb2_a_a_b_b.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a0a894e3715ce8c61b7958dd6e083663d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a> { <a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663da7ce77ce1a592f49d92939997976c217b">b2_nullState</a>, 
<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663dac60dc479bee2089a695b37948179b3d4">b2_addState</a>, 
<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663dafb032f2175741fa95361e55d1c069e0a">b2_persistState</a>, 
<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663da42ca6d7de57b948c8c895cd6f51ee8be">b2_removeState</a>
 }</td></tr>
<tr class="memdesc:a0a894e3715ce8c61b7958dd6e083663d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is used for determining the state of contact points.  <a href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">More...</a><br/></td></tr>
<tr class="separator:a0a894e3715ce8c61b7958dd6e083663d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a401e2747d276e9fbfd131989e02ff568"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a401e2747d276e9fbfd131989e02ff568">b2GetPointStates</a> (<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a> state1[<a class="el" href="b2_settings_8h.html#aa5f44cc9edf711433dea2b2ec94f3c42">b2_maxManifoldPoints</a>], <a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a> state2[<a class="el" href="b2_settings_8h.html#aa5f44cc9edf711433dea2b2ec94f3c42">b2_maxManifoldPoints</a>], const <a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold1, const <a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold2)</td></tr>
<tr class="separator:a401e2747d276e9fbfd131989e02ff568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8a1bf2c6a9453307466f4870c1fa333"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8a1bf2c6a9453307466f4870c1fa333"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#ab8a1bf2c6a9453307466f4870c1fa333">b2CollideCircles</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:ab8a1bf2c6a9453307466f4870c1fa333"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between two circles. <br/></td></tr>
<tr class="separator:ab8a1bf2c6a9453307466f4870c1fa333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30da13c857596fbefa40b47c3e1e78d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30da13c857596fbefa40b47c3e1e78d0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a30da13c857596fbefa40b47c3e1e78d0">b2CollidePolygonAndCircle</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *polygonA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:a30da13c857596fbefa40b47c3e1e78d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between a polygon and a circle. <br/></td></tr>
<tr class="separator:a30da13c857596fbefa40b47c3e1e78d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f7b9859479384c0e2cceb9e7744afcb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f7b9859479384c0e2cceb9e7744afcb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a2f7b9859479384c0e2cceb9e7744afcb">b2CollidePolygons</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *polygonA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *polygonB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:a2f7b9859479384c0e2cceb9e7744afcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between two polygons. <br/></td></tr>
<tr class="separator:a2f7b9859479384c0e2cceb9e7744afcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee6f752fdf8c89152e824da12e944733"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee6f752fdf8c89152e824da12e944733"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#aee6f752fdf8c89152e824da12e944733">b2CollideEdgeAndCircle</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_edge_shape.html">b2EdgeShape</a> *polygonA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:aee6f752fdf8c89152e824da12e944733"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between an edge and a circle. <br/></td></tr>
<tr class="separator:aee6f752fdf8c89152e824da12e944733"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d0c5fab412d5ca886b1965666b16d99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d0c5fab412d5ca886b1965666b16d99"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a5d0c5fab412d5ca886b1965666b16d99">b2CollideEdgeAndPolygon</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_edge_shape.html">b2EdgeShape</a> *edgeA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:a5d0c5fab412d5ca886b1965666b16d99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between an edge and a circle. <br/></td></tr>
<tr class="separator:a5d0c5fab412d5ca886b1965666b16d99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b36e651798f55f2533f9837462ded41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b36e651798f55f2533f9837462ded41"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a8b36e651798f55f2533f9837462ded41">b2ClipSegmentToLine</a> (<a class="el" href="structb2_clip_vertex.html">b2ClipVertex</a> vOut[2], const <a class="el" href="structb2_clip_vertex.html">b2ClipVertex</a> vIn[2], const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;normal, float32 offset, int32 vertexIndexA)</td></tr>
<tr class="memdesc:a8b36e651798f55f2533f9837462ded41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clipping for contact manifolds. <br/></td></tr>
<tr class="separator:a8b36e651798f55f2533f9837462ded41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7601420d0b42c1ee494e879dd2009a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7601420d0b42c1ee494e879dd2009a5"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#ae7601420d0b42c1ee494e879dd2009a5">b2TestOverlap</a> (const <a class="el" href="classb2_shape.html">b2Shape</a> *shapeA, int32 indexA, const <a class="el" href="classb2_shape.html">b2Shape</a> *shapeB, int32 indexB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:ae7601420d0b42c1ee494e879dd2009a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if two generic shapes overlap. <br/></td></tr>
<tr class="separator:ae7601420d0b42c1ee494e879dd2009a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dea7a8a1115626c450a697f6c6bf97e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3dea7a8a1115626c450a697f6c6bf97e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>b2TestOverlap</b> (const <a class="el" href="structb2_a_a_b_b.html">b2AABB</a> &amp;a, const <a class="el" href="structb2_a_a_b_b.html">b2AABB</a> &amp;b)</td></tr>
<tr class="separator:a3dea7a8a1115626c450a697f6c6bf97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a910fdc8a802b3cac220f2ee873109818"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a910fdc8a802b3cac220f2ee873109818"></a>
const uint8&#160;</td><td class="memItemRight" valign="bottom"><b>b2_nullFeature</b> = UCHAR_MAX</td></tr>
<tr class="separator:a910fdc8a802b3cac220f2ee873109818"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Structures and functions used for computing contact points, distance queries, and TOI queries. </p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is used for determining the state of contact points. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663da7ce77ce1a592f49d92939997976c217b"></a>b2_nullState</em>&#160;</td><td class="fielddoc">
<p>point does not exist </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663dac60dc479bee2089a695b37948179b3d4"></a>b2_addState</em>&#160;</td><td class="fielddoc">
<p>point was added in the update </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663dafb032f2175741fa95361e55d1c069e0a"></a>b2_persistState</em>&#160;</td><td class="fielddoc">
<p>point persisted across the update </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663da42ca6d7de57b948c8c895cd6f51ee8be"></a>b2_removeState</em>&#160;</td><td class="fielddoc">
<p>point was removed in the update </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a401e2747d276e9fbfd131989e02ff568"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2GetPointStates </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a>&#160;</td>
          <td class="paramname"><em>state1</em>[b2_maxManifoldPoints], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a>&#160;</td>
          <td class="paramname"><em>state2</em>[b2_maxManifoldPoints], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_manifold.html">b2Manifold</a> *&#160;</td>
          <td class="paramname"><em>manifold1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_manifold.html">b2Manifold</a> *&#160;</td>
          <td class="paramname"><em>manifold2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compute the point states given two manifolds. The states pertain to the transition from manifold1 to manifold2. So state1 is either persist or remove while state2 is either add or persist. </p>

</div>
</div>
</div><!-- contents -->
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46159502-1', 'auto');
ga('create', 'UA-49880327-7', 'auto', {'name': 'liquidFunTracker'});
ga('send', 'pageview');
ga('liquidFunTracker.send', 'pageview');
</script>
</body>
</html>
